<?php // $Id: sharpobj_port_server.php,v 1.2 2006/03/30 16:10:34 alex Exp $
// Серверный порт для обращения к базе данных

// Базовый класс серверного порта
class sharpobj_port_server
{
    private $processor_class = array();
    function classAdd($name='main',$class)
    {
        $this->processor_class[$name] = $class;
    }
    /**
     * Ссылка на класс-процессор, для которого предназначена команда
     *
     * @param string $name
     * @return sharpobj_processor
     */
    protected function classLink($name)
    {
        return @$this->processor_class[$name];
    }
    
    /**
     * Исполнить запрос
     *
     * @param string $class
     * @param string $func
     * @param sharpobj_data_interface_item $dataobj
     * @return sharpobj_data_interface_item
     */
    function query($func,$dataobj=null,$classn='main')
    {
        // Исполнить запрос
        // debug_print_backtrace();
        $class = $this->classLink($classn);
        if ($class instanceof sharpobj_processor)
        {
            return $class->action($func,$dataobj);
        }else
        {
            return sharpobj_error('processor_class_name',"Процессор {$classn} не зарегистрирован"
							,"Неправильный идентификатор класса процессора или при регистрации передан неправильный объект",3);
        }
        
    }
    function __construct($name=null,$class=null)
    {
        if (!is_null($name) AND !is_null($class))
        {
            $this->classAdd($name,$class);
        }
    }
}

?>